package model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class CajaDiaria {
	private int id;
	private List<Factura> facturas;
	private String estado;
	private Date fecha;
	private float total;
	private List<ItemBillete> efectivoTotal;
	private List<Ticket> ticketsTotal;
	private List<Pago> pagos;
	private Date horaCierre;
	
	public CajaDiaria(){
		this.efectivoTotal=new ArrayList<ItemBillete>();
		this.facturas=new ArrayList<Factura>();
		this.pagos=new ArrayList<Pago>();
		this.ticketsTotal=new ArrayList<Ticket>();
	}
	
	public List<Factura> getFacturas() {
		return facturas;
	}
	public void setFacturas(List<Factura> facturas) {
		this.facturas = facturas;
	}
	public String getEstado() {
		return estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	public Date getFecha() {
		return fecha;
	}
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}
	public float getTotal() {
		return total;
	}
	public void setTotal(float total) {
		this.total = total;
	}
	public List<ItemBillete> getEfectivoTotal() {
		return efectivoTotal;
	}
	public void setEfectivoTotal(List<ItemBillete> efectivoTotal) {
		this.efectivoTotal = efectivoTotal;
	}
	public List<Pago> getPagos() {
		return pagos;
	}
	public void setPagos(List<Pago> pagos) {
		this.pagos = pagos;
	}
	public Date getHoraCierre() {
		return horaCierre;
	}
	public void setHoraCierre(Date horaCierre) {
		this.horaCierre = horaCierre;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public void addEfectivo(ItemBillete itemBillete) {
		this.efectivoTotal.add(itemBillete);
		
	}

	public void addFactura(Factura factura) {
		this.facturas.add(factura);
		
	}

	public void addPago(Pago pago) {
		this.pagos.add(pago);
		
	}

	public ArrayList<Ticket> getTicketsVentas() {
		ArrayList<Ticket>tickets=new ArrayList<Ticket>();
		for (Pago pago : getPagos()) {
			if(pago.getTicket()!=null){
				tickets.add(pago.getTicket());
			}
		}
		return tickets;
	}

	public List<Ticket> getTicketsTotal() {
		return ticketsTotal;
	}

	public void setTicketsTotal(List<Ticket> ticketsTotal) {
		this.ticketsTotal = ticketsTotal;
	}

	public void addTicket(Ticket ticket) {
		this.ticketsTotal.add(ticket);
		
	}

	public List<Factura> getFacturasSinPagos() {
		List<Factura> facturasSinPago=new ArrayList<Factura>();
		for (Factura factura : getFacturas()) {
			boolean tienePago=false;
			for (Pago pago : getPagos()) {
				if(pago.getFactura().getNumero()==factura.getNumero())
					tienePago=true;
					
			}
			if(tienePago==false)
				facturasSinPago.add(factura);
			else
				tienePago=false;
		}
		return facturasSinPago;
	}
}
